package com.fg.cloud.manager.service.agency;

import java.io.IOException;
import java.util.List;

import com.fg.cloud.common.PageUtils;
import com.fg.cloud.common.construction.Select;
import com.fg.cloud.manager.entry.agency.AgencyEntity;
import com.fg.cloud.manager.entry.agency.AgencyImagesEntity;
import com.fg.cloud.manager.entry.agency.vo.AgencyInvoiceVo;
import com.fg.cloud.manager.entry.agency.vo.AgencyVo;
import com.fg.cloud.manager.service.BaseService;

/**
 * 经销商service
 * @author around
 * @date 2017-6-21
 */
public interface AgencyService extends BaseService {
	
	
	/**
	 * Description:导入经销商
	 * @param entity
	 * @return
	 * @author dingjiang
	 * @date 2017年11月8日上午9:20:09
	 */
	boolean importAgency(AgencyEntity entity);
	
	
	
	/**
	  * Description:新增经销商
	  * @param entity
	  * @return
	  * @author shaoqiping
	  * @date 2017年9月21日上午10:58:00
	*/
	boolean insertSelective(AgencyVo entity);
	
	boolean updateByPrimaryKeySelective(AgencyVo entity);
	
	/**
	 * 批量删除，根据主键ID or any
	 * @param key String
	 * @param values String(array)
	 * @return boolean true：成功
	 * @throws IOException 
	 */
	boolean deletes(String key, String values) throws IOException;
	
	boolean deletes(Long userId, Long facId, Long[] ids);
	
	/**
	 * 分页查询，动态传参绑定
	 * @param pageinfo PageUtils
	 */
	void findList(PageUtils<AgencyVo> pageinfo);

	/**
	 * 查询厂商下属的经销商信息（简单版）
	 * @param factoryId
	 * @return List<AgencyVo>
	 */
	List<AgencyVo> findListByFactory(Long facId);
	
	List<Select> findListByFacId(Long facId);
	
	List<Select>selectNewsBySelect(Long facId, String filter);
	
	boolean selectBycondition(Long id, Long facId);
	
	AgencyInvoiceVo finds(Long id);
	
	AgencyVo find(Long id);

	boolean deleteImgs(Long ageId, String picUrl);
	
	boolean addImgs(AgencyImagesEntity images);

	/**
	  * Description:查询经销商信息 by select控件
	  * @param facId 厂商Id
	  * @param filter 过滤内容
	  * @return
	  * @author around
	  * @date 2017年8月3日上午9:20:58
	 */
	List<Select> findBySelect(AgencyVo agency, String filter);
	
	
	/**
	  * Description:插入税务图片
	  * @param imgs
	  * @return
	  * @author shaoqiping
	  * @date 2017年8月15日上午10:23:05
	*/
	boolean insertImgs(String imgs,Long agencyId);
	
	/**
	  * Description:查询税务图片
	  * @param agencyId
	  * @return
	  * @author shaoqiping
	  * @date 2017年8月15日上午11:39:12
	*/
	List<AgencyImagesEntity> findImgs(Long agencyId);
	
	/**
	 * Description:自定义字段校验
	 * @param id ID
	 * @param facId	厂商ID
	 * @param field	字段名
	 * @param value	字段值
	 * @return
	 * @author around
	 * @date 2017年9月24日下午4:22:31
	 */
	boolean verifyUniquely(Long id, Long facId, String field, Object value);
}
